using HyxFrame.Core;
using UnityEngine;
/*
* Introduction：
* Creator：
*/

/// <summary>
/// 
/// </summary>
public partial class HGFMain : MonoBehaviour
{

    public static BaseComponent Base
    {
        get;
        private set;
    }
    /// <summary>
    /// 获取声音组件。
    /// </summary>
    public static AudioManager Sound
    {
        get;
        private set;
    }

    /// <summary>
    /// 获取配置组件。
    /// </summary>
    public static ConfigManager Config
    {
        get;
        private set;
    }

    // /// <summary>
    // /// 获取事件组件。
    // /// </summary>
    // public static Even Event
    // {
    //     get;
    //     private set;
    // }

    /// <summary>
    /// 获取资源组件。
    /// </summary>
    public static ResourceManager Resource
    {
        get;
        private set;
    }


    /// <summary>
    /// 获取界面组件。
    /// </summary>
    public static UIManager UI
    {
        get;
        private set;
    }


    /// <summary>
    /// 获取下载组件。
    /// </summary>
    public static DownloadManager Download
    {
        get;
        private set;
    }

    /// <summary>
    /// 获取文件系统组件。
    /// </summary>

    // /// <summary>
    // /// 获取网络组件。
    // /// </summary>
    // public static HGF_SocketManager Network
    // {
    //     get;
    //     private set;
    // }


    public static LoadDllManager DllManager
    {
        get;
        private set;
    }

    public static ObjectPoolManager ObjectPool
    {
        get;
        private set;
    }

    public static ChangeSceneManager ChangeScene
    {
        get;
        private set;
    }



    public virtual void InitManagerComponent()
    {

        Base = BaseComponent.CreateInstance(gameObject);
        Resource = ResourceManager.CreateInstance(gameObject);
        Config = ConfigManager.CreateInstance(gameObject);
        UI = UIManager.CreateInstance(gameObject);
        Sound = AudioManager.CreateInstance(gameObject);
        DllManager = LoadDllManager.CreateInstance(gameObject);

        ObjectPool = ObjectPoolManager.CreateInstance(gameObject);
        ChangeScene = ChangeSceneManager.CreateInstance(gameObject);


        Base.ComFinish = true;
    }


}
